wayland: Dispatch pending events before entering poll
authorRob Bradford <rob@linux.intel.com>
Sun, 4 Aug 2013 13:36:01 +0000 (14:36 +0100)
committerRob Bradford <rob@linux.intel.com>
Sun, 4 Aug 2013 13:42:14 +0000 (14:42 +0100)
If we don't dispatch the pending events then we can enter poll with events
still requiring to be processed and which can then lead to us deadlocking
there.

gdk/wayland/gdkeventsource.c

index 619ee872c1f1e4a365c33bf4be5497abd0f42629..9dda53a1ffbb9656788e59ec09f62a68c871a7c4 100644 (file)
@@ -50,6 +50,9 @@ gdk_event_source_prepare(GSource *base, gint *timeout)
     return TRUE;
 
   if (wl_display_flush (display->wl_display) < 0)
+    g_error ("Error flushing display: %s", g_strerror (errno));
+
+  if (wl_display_dispatch_pending (display->wl_display) < 0)
     g_error ("Error dispatching display: %s", g_strerror (errno));
 
   return FALSE;